目前我們呼叫vertex AI的流量 是走cloud NAT出公網再打google的公開API endpoint, 今天要做的事把這條路徑改成私有網路直連 讓BFF呼叫VertexAI 不經過公網
google_compute_address(Internal, PSC 用)+ google_compute_global_forwarding_rule,target 指向 Google 的 all-apis / vertex-ai service attachment bundle。aiplatform.googleapis.com(或 .googleapis.com)解析導向剛才建立的 PSC 內部 IP,通常透過 google_dns_managed_zone(private zone)+ CNAME/A record,或用 private.googleapis.com / restricted.googleapis.com 的做法。vpc_access_connector 出站,要確認這條路徑會吃到新的私有 DNS,而不是繼續打 Cloud NAT 出去的公開路徑。dig/nslookup 確認 aiplatform.googleapis.com 解析到內部 IP)。這樣做完後,即使有人拿到 Cloud Run 的 SA key,流量路徑上也少了「經過公網」這個暴露面,跟 D24 的邊界控制形成「進得去的人是誰」+「走的路是私有的」雙重防護。
egress = "ALL_TRAFFIC")[Client 瀏覽器]
│ HTTPS + Firebase ID Token
▼
[BFF · Cloud Run]
│ 呼叫 aiplatform.googleapis.com (Vertex AI SDK)
│ 因為 egress=ALL_TRAFFIC → 全部出站流量都繞進 VPC
▼
[VPC Access Connector] → [connector_subnet]
│
│ DNS 解析:aiplatform.googleapis.com → Google 公開 API IP(不是你的私有網段)
▼
[Cloud NAT + Cloud Router] ← network.tf:100 的 nat_config
│ 把 connector_subnet 的私有來源 IP 轉換成 NAT 公開 IP
▼
[Google Front End (公開端點)]
│ 認證靠 IAM/OAuth Bearer Token,不是靠「你是誰的網路」
▼
[Vertex AI]
[BFF · Cloud Run]
│
▼
[VPC Access Connector] → [connector_subnet]
│
│ DNS 解析:aiplatform.googleapis.com → 10.x.x.x(PSC Endpoint,你 VPC 自己的私有 IP)
▼
[PSC Endpoint (google_compute_forwarding_rule)]
│ 走 Google 內部 Service Attachment,全程私有位址
▼
[Vertex AI]
傾向加:
傾向不加: